TYPE type_name SUBSUMES type = [type_declaration_signature];
A sub-type is obtained by restricting the set of possible values an object of that type can take.
Examples:
TYPE GenericIntervalType = RECORD { LowerBound: Generic; UpperBound: Generic; };
The "Generic" type is a built-in type that unifies with any other type; any type is a sub-type of "Generic".
TYPE RealIntervalType "Interval of real numbers" SUBSUMES GenericIntervalType = RECORD { LowerBound: Real; // Real is a sub-type of Generic UpperBound: Real; };
"RealIntervalType" is a sub-type of "GenericIntervalType".